

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>Developers [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, Project Role,Project Role Developer,Developer,Developer Project Role,Developer And Enterprise Architect,Developer Round-Trip Engineering,Developer Reverse Engineering,Developer Forward Engineering,Developer Visualise Package Arrangement,Enterprise Architect,Enterprise Architect For Developers">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">Developers</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="softwareengineer.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="projectmanager.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_BodyText"><span class="f_BodyText">Developers can use Enterprise Architect to perform round trip <a href="codeengineering.htm">code engineering</a>, which includes reverse engineering of existing code and <a href="generatesourcecode.htm">generation of code</a> from UML <a href="class.htm">Class elements</a>.</span></p>
<p class="p_TextIndentedL2"><img src="example%20of%20a%20class%20diagram.png" width="651" height="452" border="0" alt="Example of a Class Diagram"></p>
<p class="p_BodyText"><span class="f_BodyText"><a href="statediagram.htm">State Machine</a>, <a href="packagediagram.htm">Package</a> and <a href="activitydiagram.htm">Activity</a> diagrams can be used by the developer to better understand the interaction between code elements and the arrangement of the code.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Round Trip Engineering</span></p>
<p class="p_BodyText"><span class="f_BodyText">Enterprise Architect gives the developer unparalleled flexibility, with the ability to round trip software from existing source code to UML 2.1 models and back again. Round trip Engineering involves both forward and reverse engineering of code. Keeping the <a href="cgo_synchcode.htm">model and code synchronized</a> is an important aspect of round trip engineering.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Reverse Engineering</span></p>
<p class="p_BodyText"><span class="f_BodyText">Enterprise Architect enables developers to <a href="reverseengineersourcecode.htm">reverse engineer</a> code from a number of supported languages and view the existing code as <a href="classdiagram.htm">Class diagrams</a>. The developer can use Class diagrams to illustrate the static design view of the system. Class diagrams consist of Classes and interfaces and the relationships between them. The Classes defined in UML Class diagrams can have direct counterparts in the implementation of a programming language.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Forward Engineering</span></p>
<p class="p_BodyText"><span class="f_BodyText">As well as the ability to reverse engineer code, Enterprise Architect offers the developer the option of forward engineering code (code generation). This enables the developer to make changes to their model with Enterprise Architect and have these changes implemented in the source code.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Determine the System State</span></p>
<p class="p_BodyText"><span class="f_BodyText">To visualize the state of the system the developer can use <a href="statediagram.htm">State Machine</a> diagrams to describe how elements move between states, classifying their behavior according to transition triggers and constraining guards. State Machine diagrams are used to capture system changes over time, typically being associated with particular Classes (often a Class can have one or more State Machine diagrams used to fully describe its potential states).</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Visualize Package Arrangement</span></p>
<p class="p_BodyText"><span class="f_BodyText"><a href="packagediagram.htm">Package diagrams</a> are used to help design the architecture of the system. They are used to organize diagrams and elements into manageable groups, and to declare their dependencies.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Follow the Flow of Code</span></p>
<p class="p_BodyText"><span class="f_BodyText"><a href="activitydiagram.htm">Activity diagrams</a> are used to enable a better understanding of the flow of code. Activity diagrams illustrate the dynamic nature of the system. This enables modeling of the flow of control between Activities and represents the changes in state of the system.</span></p>
<p class="p_SeeAlso"><span class="f_SeeAlso">See Also</span></p>
<ul style="text-indent: 0px; margin-left: 30px; list-style-position: outside;">
<li><span class="f_Bulletlist1" style="font-style: italic;"><a href="xml_technologies.htm">XML Technologies</a></span></li>
<li><span class="f_Bulletlist1" style="font-style: italic;"><a href="mdastyletransforms.htm">MDA Transformations</a></span></li>
<li><span class="f_Bulletlist1" style="font-style: italic;"><a href="buildandrun.htm">Visual Execution Analyzer</a></span></li>
</ul>




            </div>
          </div>
        </div>



</div>


</body>
</html>
